package com.dayu.recovery.service;

import java.util.List;
import java.util.Map;

import com.dayu.recovery.domain.RecoveryCollect;
import com.dayu.recovery.domain.RecoveryGoods;
import com.dayu.recovery.domain.RecoveryGoodsRecord;
import com.dayu.recovery.domain.bo.GoodsQueryBo;

/**
 * 回收商品管理Service接口
 *
 * @author HK
 * @date 2021-04-16
 */
public interface IRecoveryGoodsService
{
    /**
     * 查询回收商品管理
     *
     * @param goodsId 回收商品管理ID
     * @return 回收商品管理
     */
    RecoveryGoods selectRecoveryGoodsById(String goodsId);

    /**
     * 获取正常状态的数据
     */
    RecoveryGoods queryGoodsNormalById(String goodsId);

   /** 修改日志*/
    List<RecoveryGoodsRecord> queryRecordList(RecoveryGoodsRecord bo);

    /**
     * 查询回收商品管理列表
     *
     * @param recoveryGoods 回收商品管理
     * @return 回收商品管理集合
     */
    List<RecoveryGoods> selectRecoveryGoodsList(RecoveryGoods recoveryGoods);

    //入库价格区间分布
    List<Map<String, Object>> queryChatDataByCostPrice();
    //成色分布
    List<Map<String, Object>> queryFinenessChatData();
    List<Map<String, Object>> queryBrandChatData();

    //最近七天成本和销售额
    Map<String, Object> querySaleAndCostChatData(GoodsQueryBo bo);

    List<Map<String, Object>> queryIndexData(GoodsQueryBo bo);

    /**
     * 导出回收商品列表
     * @param recoveryGoods 回收商品管理
     * @return  回收商品管理集合
     */
    public List<RecoveryGoods> exportRecoveryGoodsList(RecoveryGoods recoveryGoods, boolean bool);

    /**
     * 修改回收商品管理
     *
     * @param recoveryGoods 回收商品管理
     * @return 结果
     */
    public int updateRecoveryGoods(RecoveryGoods recoveryGoods);

   RecoveryGoodsRecord addGoodsRecord(RecoveryGoodsRecord record);

    /**
     * 批量删除回收商品管理
     *
     * @param goodsIds 需要删除的回收商品管理ID
     * @return 结果
     */
    public int deleteRecoveryGoodsByIds(String[] goodsIds);


    /**
     * 批量新增回收商品
     * @param collect
     * @return
     */
    int insertRecoveryGoodsByList(RecoveryCollect collect);

    /**
     * 查询某个仓库 成本和
     * @param recoveryGoods 仓库id
     * @return 成本和
     */
    Map<String, Object> selectStockGoodsPrice(RecoveryGoods recoveryGoods);

}
